Systems and methods of remote object tracking

ABSTRACT

A management server in communication with one or more object tracking devices is disclosed. The management server may receive location information, configuration information, and orientation information associated with the one or more object tracking devices. Based at least in part on the location information, the management server may receive weather information associated with the locations of the one or more object tracking devices. Based at least in part on the location information, the weather information, the configuration information, and the orientation information, the management server can determine power generated and power consumed by the one or more object tracking devices, which then can be used to determine estimated operation time for the one or more object tracking devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. Provisional Patent Application No. 62/991,319, filed Mar. 18, 2020, and titled “SYSTEMS AND METHODS OF REMOTE OBJECT TRACKING.” The entire disclosure of each of the above items is hereby made part of this specification as if set forth fully herein and incorporated by reference for all purposes, for all that it contains.

Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57 for all purposes and for all that they contain.

TECHNICAL FIELD

Embodiments of the present disclosure relate to object tracking devices, sensors, systems, and methods that allow for power generation calculation, power consumption calculation, and processing. Embodiments of the present disclosure further relate to devices, systems, and methods that provide estimated operation time and updated device configurations.

BACKGROUND

The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.

Object tracking devices may intermittently or continuously collect information related to objects (for example, assets such as trailers) and transmit such information to a remote server. Such information may be used to determine various useful information related to the objects.

SUMMARY

The systems, methods, and devices described herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure, several non-limiting features will now be described briefly.

For object tracking devices that intermittently or continuously collect information related to objects (for example, assets such as trailers) and wirelessly transmit such information to a remote server, availability (or visibility) to users is important. In order to continue monitoring objects, such object tracking devices should remain operational for a desired period of time. Although external power sources (e.g., a grid or an external battery) may be used to provide power to object tracking devices, such solutions may not be always available. For example, when an object-of-interest is left alone at a remote location, it may be difficult to provide external power sources to an object tracking device associated with that object-of-interest.

An object tracking device can include a solar cell that can generate solar-based energy for the object tracking device, and which can be used to charge an internal battery of the object tracking device. However, it is often difficult to predict whether object tracking devices can remain operational for a desired period of time (e.g., a year or a month) because the amount of energy generated using solar cells can vary greatly depending of solar irradiance, weather condition, orientation of the solar cells, surrounding environment, and the like. Additionally, operational consumption of energy by the object tracking devices can vary greatly depending on various factors such as the configuration of the object tracking device. Therefore there is a great need to accurately forecast and estimate power generated by solar cells for object tracking devices, forecast an estimate power consumed by object tracking devices, and predict whether object tracking devices can remain operational for a certain period of time.

The embodiments of the present disclosure relate to systems and methods that allow for accurately determining estimated operation time for object tracking devices and generating an updated configuration information. Embodiments of the present disclosure further relate to systems and methods that allow for accurately determining estimated operation time for object tracking devices and generating notifications to users.

For example, according to various embodiments, the present disclosure includes a system that includes at least an object tracking device and a remote management server. The object tracking device includes at least a location determination module and a power generation module. The location determination module may determine the location of the object tracking device and the power generation module may generate electricity for the object tracking device. The remote management server may receive the location information from the object tracking device and determine estimated power generation associated with the object tracking device. The remote management server may further receive configuration information from the object tracking device and determine estimated power consumption associated with the object tracking device. The management server may further determine estimated operation time for the object tracking device based at least in part on the estimated power consumption and the estimated power generation.

In various embodiments, the object tracking device may further include an orientation determination module that may determine the orientation of the object tracking device. The orientation of the object tacking device may be used to determine the estimated power generation for the object tracking device.

In various embodiments, the management server may receive weather information associated with the location of the object tracking device. The weather information may be used to determine estimated power generation of the object tracking device.

In various embodiments, the object tracking device may collect object information associated with an object associated with the object tracking device. The object information may include, but is not limited to, temperature information, access information, visual information, and the like.

In various embodiments, the configuration information may include, but is not limited to, power consumption data, amount of power consumed per data transmission between the object tracking device and the management server, frequency of data transmission between the object tracking device and the management server, frequency of determining location of the object tracking device, frequency of determining orientation of the object tracking device, frequency of collecting object information, and the like.

In various embodiments, the management server, based at least in part on the estimated operation time, generates updated configuration data. The updated configuration data may be sent to the object tracking device to provide updated configuration.

In various embodiments, the management server, based at least in part on the estimated operation time, generates notifications. The notifications may be sent to user devices to provide at least one of the following: request to reorient the object tracking device, request to provide an external power source for the object tracking device, the estimated operation time, and the like.

Various combinations of the above and below recited features, embodiments, and aspects are also disclosed and contemplated by the present disclosure.

Additional embodiments of the disclosure are described below in reference to the appended claims, which may serve as an additional summary of the disclosure.

In various embodiments, systems and/or computer systems are disclosed that comprise a computer readable storage medium having program instructions embodied therewith, and one or more processors configured to execute the program instructions to cause the one or more processors to perform operations comprising one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims).

In various embodiments, computer-implemented methods are disclosed in which, by one or more processors executing program instructions, one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims) are implemented and/or performed.

In various embodiments, computer program products comprising a computer readable storage medium are disclosed, wherein the computer readable storage medium has program instructions embodied therewith, the program instructions executable by one or more processors to cause the one or more processors to perform operations comprising one or more aspects of the above- and/or below-described embodiments (including one or more aspects of the appended claims).

BRIEF DESCRIPTION OF THE DRAWINGS

The following drawings and the associated descriptions are provided to illustrate embodiments of the present disclosure and do not limit the scope of the claims. Aspects and many of the attendant advantages of this disclosure will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:

FIG. 1 illustrates a block diagram of an example operating environment in which one or more aspects of the present disclosure may operate, according to various embodiments of the present disclosure.

FIG. 2 illustrates a block diagram including an example implementation of a management server, according to various embodiments of the present disclosure.

FIG. 3 illustrates a block diagram including an example implementation of an object tracking device, according to various embodiments of the present disclosure.

FIG. 4 illustrates a block diagram of an example operation of a management server, according to various embodiments of the present disclosure.

FIGS. 5-6 are flowcharts illustrating example methods and functionality, according to various embodiments of the present disclosure.

FIG. 7 illustrates an example graph illustrating example voltage levels and solar irradiance levels over a period of time, according to various embodiments of the present disclosure.

DETAILED DESCRIPTION

Although certain preferred embodiments and examples are disclosed below, inventive subject matter extends beyond the specifically disclosed embodiments to other alternative embodiments and/or uses and to modifications and equivalents thereof. Thus, the scope of the claims appended hereto is not limited by any of the particular embodiments described below. For example, in any method or process disclosed herein, the acts or operations of the method or process may be performed in any suitable sequence and are not necessarily limited to any particular disclosed sequence. Various operations may be described as multiple discrete operations in turn, in a manner that may be helpful in understanding certain embodiments; however, the order of description should not be construed to imply that these operations are order dependent. Additionally, the structures, systems, and/or devices described herein may be embodied as integrated components or as separate components. For purposes of comparing various embodiments, certain aspects and advantages of these embodiments are described. Not necessarily all such aspects or advantages are achieved by any particular embodiment. Thus, for example, various embodiments may be carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other aspects or advantages as may also be taught or suggested herein.

I. Overview

As mentioned above, according to various embodiments, the present disclosure includes one or more object tracking devices. An object tracking device may include at least a location determination module for generating location information, for example, associated with the object tracking device positioned on a trailer. The location information may be analyzed by a remote computing system, for example, to determine location of the object tracking device, receive weather information associated with the location of the object tracking device, and determine power generation associated with the object tracking device. The object tracking device may collect information associated with an asset, for example, a trailer, that can include, but is not limited to, temperature information, access information, visual information, and the like. The object tracking device may include on-device memory for storing information associated with an asset, configuration information, location information, orientation information, and the like. The object tracking device may further include components for communicating with other devices/systems, including one or more web-servers.

In various embodiments, the object tracking devices may be configured to automatically connect to a remote management server (for example, a “cloud”-based management server), and may transmit data associated with location, configuration, or orientation of the object tracking devices to the remote management server via wired or wireless communications. The object tracking devices may further communicate with the management server or user computing devices, for example, to provide remote access to the object tracking device, provide real-time information from the object tracking device, receive configurations/updates, provide interactive graphical user interfaces, and the like.

In various embodiments, the management server may aggregate data associated with location and configuration from one or more object tracking devices, and provide statuses, alerts, analyses, etc., including via interactive graphical user interfaces that may be accessed via user computing devices. The management server may provide interactive graphical user interfaces through which a user may configure one or more object tracking devices.

In various embodiments, additional devices may communicate with the object tracking devices (and/or other systems, devices, etc.) via wired or wireless communications. The additional devices can collect information including, but not limited to, temperature, vibration, pressure, door operation, storage status related to the objects tracked by the object tracking devices.

Various aspects of the present disclosure may individually and/or collectively provide various technical advantages as described herein, and may overcome various disadvantages of prior systems and methods. For example, embodiments of the present disclosure may include object tracking devices that include built-in wireless and/or wired communications capabilities. The object tracking devices may automatically establish communication with a remote management server, additional devices, and the like. The object tracking devices may be remotely and centrally monitored and configured via the management server, for example, via a wired or wireless network. The object tracking devices may include location determination module(s), configuration database, orientation determination module(s), power generation module(s), power storage, or object information collection capabilities such that they may operate autonomously based on a current configuration. However, the object tracking devices may further transmit location information, orientation information, configuration information, and/or the like, associated with the object tracking devices to a remote database (for example, via the management server). Such location information or configuration information may be useable by the management server for providing further analyses, insights, alerts, summaries, etc. to users via interactive graphical user interfaces. The object tracking devices may provide remote access to live location information or configuration information via a web-server operating on the object tracking devices. Additional devices may communicate with the object tracking devices via wired or wireless, direct or networked communications. The object tracking devices may provide interactive graphical user interfaces to such additional devices, enabling synchronization of object tracking device status at multiple additional devices and/or other user devices.

Advantageously, according to various embodiments, the present disclosure may provide an object tracking system that determines estimated operation time for an object tracking device. The present disclosure may provide a system to updated configuration data to object tracking devices to provide improved estimated operation time. Moreover, the present disclosure may provide a system to provide notifications based at least in part on the estimated operation time.

Embodiments of the disclosure will now be described with reference to the accompanying figures, wherein like numerals refer to like elements throughout. The terminology used in the description presented herein is not intended to be interpreted in any limited or restrictive manner, simply because it is being utilized in conjunction with a detailed description of certain specific embodiments of the disclosure. Furthermore, embodiments of the disclosure may include several novel features, no single one of which is solely responsible for its desirable attributes or which is essential to practicing the embodiments of the disclosure herein described.

Terms

In order to facilitate an understanding of the systems and methods discussed herein, a number of terms are defined below. The terms defined below, as well as other terms used herein, should be construed broadly to include the provided definitions, the ordinary and customary meaning of the terms, and/or any other implied meaning for the respective terms. Thus, the definitions below do not limit the meaning of these terms, but only provide example definitions.

User Input (also referred to as “Input”): Any interaction, data, indication, etc., received by a system/device from a user, a representative of a user, an entity associated with a user, and/or any other entity. Inputs may include any interactions that are intended to be received and/or stored by the system/device; to cause the system/device to access and/or store data items; to cause the system to analyze, integrate, and/or otherwise use data items; to cause the system to update to data that is displayed; to cause the system to update a way that data is displayed; and/or the like. Non-limiting examples of user inputs include keyboard inputs, mouse inputs, digital pen inputs, voice inputs, finger touch inputs (for example, via touch sensitive display), gesture inputs (for example, hand movements, finger movements, arm movements, movements of any other appendage, and/or body movements), and/or the like. Additionally, user inputs to the system may include inputs via tools and/or other objects manipulated by the user. For example, the user may move an object, such as a tool, stylus, or wand, to provide inputs. Further, user inputs may include motion, position, rotation, angle, alignment, orientation, configuration (for example, fist, hand flat, one finger extended, etc.), and/or the like. For example, user inputs may comprise a position, orientation, and/or motion of a hand or other appendage, a body, a 3D mouse, and/or the like.

Data Store: Any computer readable storage medium and/or device (or collection of data storage mediums and/or devices). Examples of data stores include, but are not limited to, optical disks (for example, CD-ROM, DVD-ROM, etc.), magnetic disks (for example, hard disks, floppy disks, etc.), memory circuits (for example, solid state drives, random-access memory (RAM), etc.), and/or the like. Another example of a data store is a hosted storage environment that includes a collection of physical data storage devices that may be remotely accessible and may be rapidly provisioned as needed (commonly referred to as “cloud” storage).

Database: Any data structure (and/or combinations of multiple data structures) for storing and/or organizing data, including, but not limited to, relational databases (for example, Oracle databases, PostgreSQL databases, etc.), non-relational databases (for example, NoSQL databases, etc.), in-memory databases, spreadsheets, comma separated values (CSV) files, eXtendible markup language (XML) files, TeXT (TXT) files, flat files, spreadsheet files, and/or any other widely used or proprietary format for data storage. Databases are typically stored in one or more data stores. Accordingly, each database referred to herein (for example, in the description herein and/or the figures of the present application) is to be understood as being stored in one or more data stores. Additionally, although the present disclosure may show or describe data as being stored in combined or separate databases, in various embodiments such data may be combined and/or separated in any appropriate way into one or more databases, one or more tables of one or more databases, etc. As used herein, a data source may refer to a table in a relational database, for example.

Example Operating Environment

FIG. 1 illustrates a block diagram of an example operating environment 100 in which one or more aspects of the present disclosure may operate, according to various embodiments of the present disclosure. The operating environment 100 may include one or more user devices 160, a management server 150, one or more object tracking devices 110, one or more data sources 140, and one or more additional devices 120. The various devices may communicate with one another via, for example, a network 130, as illustrated.

In general, the object tracking device 110 comprises a housing including processor(s), memory, data input/output (I/O) interface(s), power generating module(s), location determination module(s), orientation determination module(s), controller(s), etc. that may be affixed to, or positioned near an object, (for example, an asset, a container, or a trailer). For example, the object tracking device 110 may be coupled to or positioned on a trailer. The object tracking device 110 may determine location information associated with the object tracking device 110, determine a current configuration information associated with the object tracking device 110, and transmit aforementioned location information and configuration information to the management server based at least in part on the current configuration of the object tracking device 110. Additionally, the object tracking device 110 may determine orientation information associated with the object tracking device and transmit the orientation information to the management server.

Configurations of the object tracking device 110 may include power consumption information associated with the object tracking device 110, data collection frequency (for example, frequency of collecting the location information associated with the object tracking device 110), data transmission frequency (for example, transmission of the location information between the object tracking device 110 and the management server), an amount of power consumption per data transmission between the object tracking device 110 and the management server, or network connectivity information, as described herein.

Additionally, the object tracking device 110 may collect object information associated with the object associated with the object tracking device 110. The object tracking device 110 may collect object information based at least in part on the current configuration information of the object tracking device 110. The object information may be collected continuously, periodically, on a predetermined time interval, on demand, and/or the like.

The object information, the orientation information, the location information, and the configuration information associated with the object tracking device 110 may be stored in a memory of the object tracking device 110 (for example, a computer readable storage medium). For example, such data may be automatically transmitted intermittently or continuously from the object tracking device 110 to the management server 150. The management server 150 may thereby receive location information and configuration information from multiple object tracking devices 110, and may aggregate and perform further analyses on the location information and configuration information from multiple object tracking devices 110.

The management server 150 may communicate with the object tracking device(s) 110 to enable remote, rapid configuration of the object tracking device(s) 110. Such configuration may be accomplished via interactive graphical user interfaces provided by the management server 150. In some embodiments, such interactive graphical user interfaces may be accessible by the user device(s) 160. Via the management server 150, and/or directly by communication with the object tracking device(s) 110, user device(s) 160 may access real-time views of status, location information analysis, configuration information analysis, and the like of the object tracking device(s) 110. Communications with the object tracking device(s) 110 may be accomplished via web-servers executing on the object tracking devices 110 themselves.

In some embodiments, the features and services provided by the management server 150 may be implemented as web services consumable via the network 130. In further embodiments, the management server 150 is provided by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and released computing resources, which computing resources may include computing, networking and/or storage devices.

In general, the data sources 140 may be any type of database, data store, or server that can collect and store various types of information, for example, weather information, solar cell information, solar cell degradation information, network connectivity information, and the like. The data sources 140 may be remote from the management server 150 and may have communication capabilities to wireless communication with the management server 150, for example, via the network 130.

The additional device(s) 120 may comprise various devices/sensors that can collect information associated with an object, for example, a trailer, associated with the object tracking device 110. The additional device(s) 120 may be in communication with the object tracking device(s) 110 and transmit the information associated with the object, for example, a trailer, to the object tracking device(s) 110.

In general, the user devices 160 can be any computing device such as a desktop, laptop or tablet computer, personal computer, tablet computer, wearable computer, server, personal digital assistant (PDA), hybrid PDA/mobile phone, mobile phone, smartphone, set top box, voice command device, digital media player, and the like. A user device 160 may execute an application (for example, a browser, a stand-alone application, etc.) that allows a user to access interactive user interfaces, analyses, or aggregated data, or the like as described herein. In various embodiments, users may interact with various components of the example operating environment 100 (for example, the management server 150, the object tracking device(s) 110, the additional device(s) 120, etc.) via the user device(s) 160. Such interactions may typically be accomplished via interactive graphical user interfaces, however alternatively such interactions may be accomplished via command line, and/or other means.

The network 130 may include any wired network, wireless network, or combination thereof. For example, the network 130 may be a personal area network, local area network, wide area network, over-the-air broadcast network (for example, for radio or television), cable network, satellite network, cellular telephone network, or combination thereof. As a further example, the network 130 may be a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet. In some embodiments, the network 130 may be a private or semi-private network, such as a corporate or shared intranet. The network 130 may include one or more wireless networks, such as a Global System for Mobile Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long Term Evolution (LTE) network, or any other type of wireless network. The network 130 can use protocols and components for communicating via the Internet or any of the other aforementioned types of networks. For example, the protocols used by the network 130 may include Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), Message Queue Telemetry Transport (MQTT), Constrained Application Protocol (CoAP), and the like. Protocols and components for communicating via the Internet or any of the other aforementioned types of communication networks are well known to those skilled in the art and, thus, are not described in more detail herein.

In some embodiments, the network 130 may include an external network, a local network, or both. The local network can be local to a particular organization (for example, a private or semi-private network), such as a corporate or shared intranet. In some implementations, devices may communicate via the local network without traversing the external network such as the Internet. In some implementations, devices connected via the local network may be walled off from accessing the external network (for example, the Internet), for example, by a gateway device, unless specifically granted access to the external network. Accordingly, for example, the user device(s) 160 may communicate with the object tracking device 110 directly (via wired or wireless communications) or via the local network, without traversing the external network. Thus, even if the external network is down, or is not currently providing connectivity to the management server 150, the object tracking device(s) 110, and the user device(s) 160 may continue to communicate and function via the local network (or via direct communications).

In various embodiments, communications among the various components of the example operating environment 100 may be accomplished via any suitable means. For example, the object tracking device(s) 110 may communicate with one another, the additional device(s) 120, the data sources 140, the management server 150, and/or the user device(s) 160 via any combination of the network 130 and any other wired or wireless communications means or method (for example, Bluetooth, WiFi, infrared, cellular, etc.).

Further details and examples regarding the implementations, operation, and functionality, including various interactive graphical user interfaces, of the various components of the example operating environment 100 are described herein in reference to various figures.

Example Management Device/Server

FIG. 2 illustrates a block diagram including an example implementation of a management server 150, according to various embodiments of the present disclosure. The management server 150 may be a Web or cloud server, or a cluster of servers, running on one or more sets of server hardware. In an embodiment, the management server 150 may work for multiple organizations with different administrators that may have, for example, multiple object tracking device(s) 110 and additional device(s) 120.

According to various embodiments, management server 150 may include one or more communication interfaces 215, one or more processors 210, and one or more computer readable storage mediums 250, each of which may be in communication with one another. The computer readable storage medium 250 includes data processing module 252, user interface module 254, network manager module 256, weather database 258, devices database 260, configurations database 262, organizations database 264, and locations database 266. In various implementations, the various databases of the management server 150 may be combined or separated/partitioned as appropriate to implement the functionality described herein, and to maintain security and separation of data, for example, for different organizations. In various implementations, the various databases may or may not be stored separately from the management server 150.

In various implementations one or more interfaces, APIs, communication layers, buses, interconnects, wires/cables, etc. may be used to interconnect the various components of the management server 150.

In operation, the one or more communication interfaces 215, one or more processors 210, and one or more computer readable storage mediums 250 communicate with one another to, for example, execute by the processor(s) 210 computer program instructions (for example, as provided by the user interface module 254); receive, access, and transmit data (for example, to/from the databases and via the communication interface(s) 215); and/or the like. In general, the processor 210, the communication interface 215, and the computer readable storage medium 250 enable the functionality of the management server 150 as described herein. Further implementation details are described below.

In operation, the communication interface(s) 215 may provide wired or wireless communications with other devices and networks, as described herein. In various embodiments, communications among the various components of the example operating environment 100 may be accomplished via any suitable means. For example, the management server 150 may communicate with the object tracking device 110, the data source(s) 140, the additional device(s) 120, and/or the user device(s) 160 via any combination of the network 130 or any other communications means or method (for example, Bluetooth, WiFi, infrared, cellular, etc.). Accordingly, the communications interface(s) 215 may include one or more of wired and wireless transceivers, such as a Joint Test Action Group (JTAG) transceiver, a Bluetooth or Bluetooth Low Energy (LE) transceiver, an IEEE 802.11 transceiver, an Ethernet transceiver, a USB transceiver, a Thunderbolt transceiver, an infrared transceiver, a wireless cellular telephony transceiver (for example, 2G, 3G, 4G, 5G), or the like.

In operation, data processing module 252 may provide processing and analysis of data (for example, data received from the various devices, including the object tracking device(s) 110 and/or additional device(s) 120) as described herein. The data processing/analysis may usefully provide insights and information that may be provided via various interactive graphical user interfaces, as described herein.

In operation, the user interface module 254 may provide the various interactive graphical user interface functionality described herein. This may include, for example, generating user interface data useable for rendering the various interactive user interfaces described. The user interface data may be used by various computer systems, devices, and/or software programs (for example, a browser program of a user device 160), to render the interactive user interfaces. The interactive user interfaces may be displayed on, for example, electronic displays (including, for example, touch-enabled displays). For example, the user interface module 254 may provide various network accessible interactive graphical user interfaces, for example, to allow the administrators of the various organizations and devices to create and log into an account associated with an organization to which a set of devices belong (for example, object tracking device(s) 110 and additional device(s) 120), and manage, and access data associated with, those devices as described herein.

In operation, the network manager module 256 may provide communication with and configuration and management of the various devices associated with each organization. This may include, for example, receiving and managing information related to the various devices (for example, object tracking device(s) 110 and additional device(s) 120) at the time of manufacture, associating devices with particular organizations when they are purchased/claimed and implemented by the organizations (for example, the claiming may be performed at least in part by populating the devices database 260 and the organizations database 264 with appropriate information when the devices are associated with an organization), receiving data from the various devices (for example, and storing the data in the devices database 260 or other appropriate database), sending data to various devices (for example, sending and/or syncing configurations stored in the configurations data 262 to/with various devices), and/or the like.

In operation, the weather database 258 may store weather information that may include one or more of irradiance information, temperature information, humidity information, precipitation information, air quality index (AQI), and the like. In operation, the management server 150 can communicate, for example, wirelessly via the network 130, with the data sources 140 to update the weather database 258. Weather information stored in the weather database 258 may come from the data sources 140 via the network 130. In some implementations, the management server 150 may not include a weather database 258, and may instead access external data sources for weather information. Additionally or alternatively, the management server 150 can communicate with the object tracking device(s) 110 to collect weather-related data such as, including, but not limited to, temperature, precipitation, humidity, solar irradiance, and the like. The weather database 258 may be updated periodically or non-periodically. The weather information stored in the weather database 258 may include current or historical data points.

In various embodiments, the data stored in the weather database 258 can be sorted using various types of filters including, but not limited, geographical locations, time of the year, and the like.

In various embodiments, the data stored in the weather database 258 can be stored for a predetermined period of time before removed or written over.

In operation, the devices database 260 may store information regarding the object tracking devices 110 and/or additional devices 120, and various relationships and associations among these devices. This information may include identifiers associated with these devices, data received from these devices, etc.

In operation, the configurations database 262 may store information regarding configurations of the object tracking devices 110 or the additional devices 120. The information stored in the configuration database 262 may include configuration information associated with the object tracking devices 110 or organizations associated with the object tracking devices 110. The configuration information may include various network settings, power generation settings, power consumption settings, network communication settings, and the like as described herein.

In operation, the organizations database 264 may store information regarding the organizations to which the object tracking devices 110 or additional devices 120 belong. In various embodiments, different configurations from the configurations database 262 may be applied for the object tracking devices 110 or the additional devices 120 based at least in part on the organization the object tracking devices 110 or additional devices 120 belong.

In operation, the locations database 266 can include location information associated with various locations associated with the object tracking devices 110. For example, the location information can include longitudinal and latitudinal information associated with the object tracking devices 110. In some embodiments, the location information can be associated the location of the object tracking devices 110 within a map tile of a grid. In various embodiments, the location information can be associated with corresponding weather information stored in the weather database 258.

In various embodiments, the management server 150 may include various other modules, components, engines, etc. to provide the functionality as described herein. It will be appreciated that additional components, not shown, may also be part of the management server 150 and, in certain embodiments, fewer components than that shown in FIG. 2 may also be used in the management server 150. For example, the management server 150 may include a security module used to manage cryptographic keys, certificates, and/or other data associated with establishing secure communication with various other devices. For example, the devices database 260 may include an identifier of each device (for example, a serial number), a secret to be used to establish a secure communication with the devices of the same organization, and/or a mechanism to authenticate the devices' identity (for example, the public key of a private public key pair, the private key of which was embedded or stored in the device during the manufacturing, etc.).

Example Object Tracking Device

FIG. 3 illustrates a block diagram of an example object tracking device 110, according to various embodiments of the present disclosure. Object tracking device 110 may comprise one or more power generation modules 310, one or more location determination modules 350, one or more orientation determination modules 360, and one or more controller modules 320. In various implementations, the power generation module 310, the location determination module 350, the orientation determination module 360, and the controller module 320 may be housed in different housings, and/or may be housed in a same housing. In various implementations, the various components and functionality of the object tracking device 110 (including the components and functionality of the power generation module 310, the location determination module 350, the orientation determination module 360, and the controller module 320) described herein may be combined, separated, or re-organized.

The power generation module 310 may include one or more solar cells 312 (and/or other similar solar power generation device(s)), one or more of power storage devices 314, and an optional controller and input/output (I/O) interface 316. In various implementations one or more buses, interconnects, wires/cables, etc. may be used to interconnect the various components of the power generation module 310, for example, the solar cells 312, the power storage devices 314, and the like.

In operation, the solar cells 312 may, when exposed to light, e.g., sunlight, generate electricity using photovoltaic (PV) effect. The solar cells 312 may include, but not limited to, one or more of Amorphous Silicon solar cell (a-Si), Biohybrid solar cell, Cadmium telluride solar cell (CdTe), Concentrated PV cell (CVP and HCVP), Copper indium gallium selenide solar cells (CI(G)S), Crystalline silicon solar cell (c-Si), Float-zone silicon, Dye-sensitized solar cell (DSSC), Gallium arsenide germanium solar cell (GaAs), Hybrid solar cell, Luminescent solar concentrator cell (LSC), Micromorph (tandem-cell using a-Si/μc-Si), Monocrystalline solar cell (mono-Si), Multi-junction solar cell (MJ), Nanocrystal solar cell, Organic solar cell (OPV), Perovskite solar cell, Photoelectrochemical cell (PEC), Plasmonic solar cell, Polycrystalline solar cell (multi-Si), Quantum dot solar cell, Solid-state solar cell, Thin-film solar cell (TFSC), Wafer solar cell (or wafer-based solar cell crystalline), Non-concentrated heterogeneous PV cell, and the like. In various implementations one or more buses, interconnects, wires/cables, etc. may be used to interconnect the solar cells 312 to various components of the power generation module 310.

The solar cells 312 may be integrated (for example, within the same housing) or not integrated (for example, not within the same housing) with other components of the object tracking device(s) 110 or power generation module 310, for example, the one or more power storages 314 and the optional controller and I/O interface 316. In various embodiments, the solar cells 312 can be separated from other components of the object tracking device(s) 110 or the power generation module 310 such that the orientations of the solar cells 312 can be modified without changing the orientations of the object tracking device(s) 110 or that of the power generation module 310. In some embodiments, the solar cell(s) 312 may form a part of a housing for the power generation module 310 or the object tracking device 110.

In various embodiments, the electricity generated by the solar cells 312 can be used to power various components of the power generation module 310 or the object tracking device(s) 110. In some embodiments, the electricity generated by the solar cells 312 may be stored in the power storage 314, which power storage 314 may then provide power to various components of the object tracking devices 110.

In operation, the power storage devices 314 may store electricity generated by the solar cells 312. The power storage device 314 may be a battery. The power storage devices 314 can be integrated or not integrated with other components of the power generation module 310 or the object tracking device(s) 110. In various implementations one or more buses, interconnects, wires/cables, etc. may be used to interconnect the power storage device(s) 314 with the various components of the power generation module 310.

The optional controller and I/O interface 316 may comprise hardware and/or software components that may provide control of the solar cells(s) 312 and/or power storage device(s) 314, and may further provide for communication of power generation data. In various implementations, the controller and I/O interface 316 may provide communication between the power generation module 310 and the controller module 320. Alternatively, the solar cell(s) 312 and/or the power storage device(s) 314 may be integrated with the controller module 320 and may communicate directly with various components of the controller module 320.

In operation, the power generation module 310 may continuously or intermittently monitor status information of the power storage device 314. The status information of the power storage device 314 may include voltage, charge rate, discharge rate, storage capacity, depth of discharge, battery efficiency, discharge current, number of charging cycles, and the like. Monitoring such parameters may allow the object tracking device 110 or the management server 150 to monitor the health of the power storage device 314 over time. In various embodiments, the voltage of the power storage device 314 may be used to determine estimated operation time of the object tracking device 110. In some embodiments, the status information of the power storage device 314 alone may not be sufficient to determine estimated operation time of the object tracking device 110. In such embodiments, power generation and power consumption of the object tracking device 110 may be used in with the status information to determine the estimated operation time.

The controller module 320 may include one or more processors 322, one or more communication interfaces 324, and one or more computer readable storage mediums 330, each of which may be in communication with one another. The computer readable storage medium(s) 330 may include configurations data 332, one or more web server module(s) 334, and devices data 336. The configurations data 332 and the device data 336 may be stored in one or more databases of the controller module 320, or may be stored on virtualization mediums in the cloud. In various implementations one or more buses, interconnects, wires/cables, etc. may be used to interconnect the various components of the controller module 320, and of the object tracking device 110 more generally.

In operation, the one or more of the communication interfaces 324, one or more processors 322, and one or more computer readable storage mediums 330 communicate with one another to, for example, execute by the processor(s) 322 computer program instructions (for example, as provided by the configurations data 332, the web server module(s) 334, or the device data 336); receive, access, and transmit data (for example, to/from the configurations data 332 or devices data 336, via the communication interface(s) 324); and/or the like. In general, the controller module 320, in connection with the power generation module 310, enables the functionality of the object tracking device 110 as described herein. Further implementation details are described below.

In operation, the communication interface(s) 324 may provide wired and/or wireless communications with other devices and networks, as described herein. In various embodiments, communications among the various components of the example operating environment 100 may be accomplished via any suitable means. For example, the object tracking device(s) 110 may communicate with one another, the additional device(s) 120, the management server 150, and/or the user device(s) 160 via the network 130 or any other communications means or method (for example, Bluetooth, WiFi, infrared, cellular, etc.). Accordingly, the communications interface(s) 324 may include one or more of wired and wireless transceivers, such as a Joint Test Action Group (JTAG) transceiver, a Bluetooth or Bluetooth Low Energy (LE) transceiver, an IEEE 802.11 transceiver, an Ethernet transceiver, a USB transceiver, a Thunderbolt transceiver, an infrared transceiver, a wireless cellular telephony transceiver (for example, 2G, 3G, 4G, 5G), or the like. As noted herein, the communications interface(s) 324 may further include one or more application programming interfaces (“APIs”).

In operation, the configuration data 332 includes one or more configurations that configure operation of the object tracking device 110, as described herein. For example, such configurations may be received from a user via the user device(s) 160 or the management server 150 (other devices in communication with the object tracking device 110). Each of the configurations stored in the configuration data 332 may include power consumption information associated with the object tracking device 110, data collection frequency (for example, frequency of collecting the location information associated with the object tracking device 110), data transmission frequency (for example, transmission of the location information between the object tracking device 110 and the management server 150), location determination frequency, an amount of power consumption per data transmission, for example, between the object tracking device 110 and the management server 150, network connectivity information, and the like. The object tracking device 110 may store multiple configurations in the configuration data 332, which may be selectively run or implemented, for example, via user selection via the management server 150 or the user device(s) 160.

In operation, the web server module(s) 334 may include program code executable, for example, by the processor(s) 322 to provide a web-based access (for example, interactive graphical user interfaces accessible via web-based communications protocols, rendering of interactive graphical user interfaces written in web-based languages by web-based browsers, etc.) to the object tracking device 110, for example, to configure the object tracking device 110 and/or access data of the object tracking device 110, as further described herein. Such web-based access may be via one or more communications protocols, for example, TCP/IP, UDP, WebRTC, etc., and may include one or more secure communications/cryptographic protocols, for example, TLS, SSL, etc., and may further be provided via communications interface(s) 324. This may include, for example, generating user interface data useable for rendering the various interactive user interfaces described. The user interface data may be used by various computer systems, devices, and/or software programs (for example, a browser program of a user device 160), to render the interactive user interfaces. The interactive user interfaces may be displayed on, for example, electronic displays (including, for example, touch-enabled displays). In various implementations one or more of the management server 150 and the user device(s) 160 may communicate with the object tracking device 110 via one or more of the web server module(s) 334.

The location determination module 350 may include one or more location determination devices 352 (e.g., global positioning system (GPS) devices, GLONASS devices, and/or the like). The location determination device 352 may determine location of the object tracking device 110 and generate location information associated with the location of the object tracking device 110. The location information may include latitudinal or longitudinal, or otherwise geographical positional, data that may represent the location of the object tracking device 110. Additionally or alternatively, the location information may identify a map tile within a grid for identifying or estimating the location of the object tracking device 110.

In various embodiments, the location determination module 350 may determine expected locations of the object tracking device(s) 110 based at least in part on historical location information associated with the object tracking device(s) 110. The historical location information may include previous locations associated with the object tracking device(s) 110 in an earlier predetermined period of time (for example, one day, 12 hours, two hours, one hour, 30 minutes, 10 minutes, 5 minutes, and the like).

In some embodiments, the location determination module 350 may determine anticipated locations of the object tracking device(s) 110 based at least in part on current transit data, which may include, for example, starting location, final destination, expected duration of transit, expected number of stops, expected total transit time, expected total transit distance, average distance covered per day, and the like.

The orientation determination module 360 may include one or more orientation sensor(s) 362. The orientation sensor(s) 362 may be used to gather orientation information to estimate the orientation of the object tracking device 110, for example, with respect to the direction of gravity. The orientation information include at least one of: acceleration, angular velocity, magnetic field, and the like. In various embodiments, the orientation sensor(s) 362 may, for example, include one or more of accelerometers, gyroscopes, magnetometers, inertial measurement units (IMUs), electromechanical tilt sensors, or any combination of aforementioned sensors.

In operation, the orientation of the object tracking device 110 may be used to determine orientation of the object tracking device 110. The orientation of the object tracking device 110 can be used to determine or estimate the orientation of the solar cell(s) 312. Determining or estimating the orientation of the solar cell(s) can advantageously allow the management server 150 to better estimate the amount of sunlight arriving at the solar cell(s) 312 because the orientation of the solar cell(s) 312 would affect the angle of incidence of the sunlight with respect to the surface of the solar cell(s) 312. Depending on the angle of incidence, the amount of electricity generated by the solar cell(s) 312 can vary. Accordingly, the orientation information associated with the object tracking device 110 or the solar cell(s) 312 can advantageously allow the management server 150 to estimate the amount of electricity generated by the solar cell(s) 312.

As described herein, location information, orientation information, or configuration information may be communicated, for example, via the communications interface(s) 324, to other devices, such as the management server 150 and/or user device(s) 160. For example, the object tracking device 110 may be configured to reliably and securely communicate data and to transmit the data to the management server 150 regardless of whether the connectivity of the object tracking device 110 (for example, to the management server 150) is intermittent. For example, data may be stored by the object tracking device 110 until connectivity is available, and may then by transmitted to the management server 150. In another example, data may be stored by the object tracking device 110 for a predetermined duration, and may then be transmitted periodically or non-periodically to the management server 150. In some implementations, the object tracking device may aggregate and/or compress data, and may then send the aggregated and/or compressed data to the management server 150 to save network bandwidth and/or energy on the device.

In various implementations, as described above, the object tracking device(s) 110 may communicate with one or more additional devices 120, which may include, for example, various components of a manufacturing line or process, sensors, etc. Communications with additional device(s) 120 may be via direct (for example, not via a network) wired and/or wireless communications, and/or may be via a network (for example, network 130) wired and/or wireless communications.

In various embodiments, the object tracking device 110, may include various other modules, components, etc. to provide the functionality as described herein. It will be appreciated that additional components, not shown, may also be part of the object tracking device 110, and, in certain embodiments, fewer components than that shown in FIG. 3 may also be used in the object tracking device 110.

In various embodiments, firmware of the object tracking device 110 may be updated such that the object tracking device 110 may provide additional functionality. Such firmware updating may be accomplished, for example, via communications with the management server 150, thereby enabling updating of multiple object tracking device 110 remotely and centrally.

Example Additional Devices

Referring again to FIG. 1 , additional device(s) 120 may include, for example, various sensors associated with storage units associated the object tracking device(s) 110. For example, additional device(s) 120 may temperature information, access information, and/or visual information associated with the storage units (for example, to indicate that a door of the storage unit has been opened without authorization, to adjust the inside temperature of the storage unit, to indicate presence of vibration or change in level for the storage unit, to actuate or operate a cooling or heating system of the storage unit, to indicate that the storage unit is empty or full, etc.). In some embodiments, the additional device(s) may provide object tracking device(s) 110 with information that may be used by the object tracking device(s) 110 and/or provided by the object tracking device(s) 110 to the management server 150, and/or the like.

In various embodiments, the additional device(s) 120 include one or more temperature sensors that can measure temperature inside a storage unit and generate temperature data associated with the measured temperature. In some embodiments, the additional device(s) 120 further include one or more sensors that can detect operation of one or more doors of a storage unit. For example, the sensors may be able to detect opening or closing of the one or more doors of the storage unit. In some embodiments, the additional device(s) 120 include one or more level sensors that can detect the level of a storage unit and generate data associated with the measured level. The level sensors may be able to indicate whether the storage unit is level. In some embodiments, the additional device(s) 120 include one or more vibration sensors that can detect/measure vibration of a storage unit and generate vibration data associated with the detected/measured vibration.

Additional non-limiting examples of additional device(s) 120 include machine/systems I/O (for example, relays, contacts, valves, flow, etc.), and the like.

As described herein, additional device(s) 120 may be communicated with or configured via the object tracking device(s) 110. Communications with the additional device(s) 120 may also be accomplished via intermediate communications with existing or legacy devices. Additionally or alternatively, additional device(s) 120 may be communicated with and/or configured via communication with user device(s) 160 or the management server 150.

Data and information gathered from the additional device(s) 120 may be provided to the management server 150, for example, via the object tracking device(s) 110 and/or directly (for example, via a network). The data and information gathered from the additional device(s) 120 may be storage within a non-transitory storage unit of the object tracking device(s) 110 and may be transmitted to the management server 150, for example, via the network 130, periodically or non-periodically.

In various implementations, one or more of, or a combination of, the object tracking device(s) 110 or the management server 150 may provide an application programming interface (“API”) by which communications may be accomplished with the additional device(s) 120. In some implementations, an additional “gateway” device may act as an intermediary between the object tracking device 110 and the management server 150, or alternatively as an intermediary between the additional device(s) 150 and the object tracking device 110.

Example Object Tracking Device Functionality

FIG. 4 illustrates a block diagram of an example processor 210 of the management server 150, according to various embodiments of the present disclosure. In particular, FIG. 4 illustrates certain example functional blocks of the processor 210, according to various embodiments.

In operation, the management server 150 may receive location information 402 from the object tracking device 110 (e.g., as provided by the location determination module 350). As described herein, the location information 402 may include data acquired by the location determination device 352. As described herein, such location information 402 may be used to determine the location of the object tracking device 110. The location information 402 may include information related to current location, historical locations, or both.

Additionally or optionally, the management server 150 may receive weather information 404, for example, from the weather database 258 of the management server 150 or the data sources 140, for example, via the network 130. As described herein, the weather information 404 may include data associated with at least one of, but not limited to, temperature, precipitation, humidity, solar irradiance, AQI, and the like. Such weather information 404 may be acquired by the management server 150 at the acquisition block 410. In various embodiments, the management server 150 may receive/identify/access the weather information 404 based at least in part on the location information 402 received, for example, from the location determination module 350 of the object tracking device 110. For example, the management server 150 may determine that the location information 402 indicates that the object tracking device 110 is located in Tucson, Ariz. The management server 150 may then retrieve or receive weather information 404 associated with the Tucson, Ariz.

Additionally or optionally, the management server 150 may receive battery information 406 from the object tracking device 110 (e.g., as provided by the power generation module 310). As described herein, the battery information 406 may include charge level of the power storage device 314. Such battery information 406 may be acquired by the management server 150 at acquisition block 410. As described herein, the battery information 406 may include at least one or more of: voltage, charge level, charge rate, discharge rate, storage capacity, depth of discharge, battery efficiency, discharge current, number of charging cycles, and the like. In operation, the management server 150 may receive configuration information 408 from the object tracking device 110 (e.g., as stored on the management server 150 or as provided from the configuration data 332). As described herein, the configuration information 408 may include power consumption information associated with the object tracking device 110, data collection frequency (for example, frequency of collecting the location information associated with the object tracking device 110), data transmission frequency (for example, transmission of the location information between the object tracking device 110 and the management server 150), location determination frequency, an amount of power consumption per data transmission, for example, between the object tracking device 110 and the management server 150, network connectivity information, and the like.

Additionally or optionally, the management server 150 may receive orientation information 409 from the object tracking device 110 (e.g., as provided by the orientation determination module 360). The orientation information 409 may include absolute orientation data or relative orientation data of the object tracking device 110. The absolute orientation data may indicate the orientation of the object tracking device 110 with respect to, for example, the direction of gravity. The relative orientation data may indicate the orientation of the object tracking device 110 with respect to, for example, a storage unit associated with the object tracking device 110.

In some embodiments, the orientation information 409 of the object tracking device 110 and/or the solar cell(s) 316 may indicate, for example, angular position, tilt angle, and the like, of the object tracking device 110 and/or the solar cell(s) 316. In some embodiments, the angular position and/or tilt angle of the solar cell(s) 316 may be compared to the angle of incidence of the sunlight (that is, angle at which the sunlight reaches the earth's surface with respect to horizontal surface of the earth) and/or azimuth angle (that is, horizontal rotation angle of the sun) of the sun. Based at least in part on the comparison between the angular position and/or tilt angle of the solar cell(s) 316 and the angle of incidence and/or azimuth angle of the sun may be used to estimate the amount of sunlight reaching the solar cell(s) 316.

In some embodiments, the management server 150 may receive information described here, for example, the location information 402, the weather information 404, the battery information 406, the configuration information 408, and the orientation information 409, from the object tracking device 110 periodically, non-periodically, intermittently, regularly, non-regularly, or the like. Each transmission, for example, of the location information 402, between the management server 150 and the object tracking device 110 may be associated with a certain amount of energy consumed by the object tracking device 110. The energy consumed by the object tracking device 110 per transmission may vary depending on various factors including, but not limited to, size of the data transmitted, amount of data processing performed on the data transmitted, network connectivity, network data transmissibility, and the like.

At block 420, the management server 150 may use the information gathered at the acquisition block 410 to determine, for example, power generation and power consumption associated with the object tracking device 110.

Example Embodiments of Determining Power Generation

In operation, the management server 150 may use the location information 402 to determine the power generation associated with the object tracking device 110. Additionally or optionally, the management server 150 may use the weather information 404 in conjunction with the location information 402 determine the power generation associated with the object tracking device 110. In some embodiments, the management server 150 may receive/identify/access the weather information 404 based at least in part on the location information 402. In some embodiments, relevant weather information may be identified from the weather information 404 based at least in part on the location information 402. As described herein, the weather information 404 may include data associated with, for example, solar irradiance, precipitation, humidity, temperature, AQI, and the like. Such data may be used to determine or estimate the amount of sunlight reaching the solar cell(s) 316 of the object tracking device 110.

In operation, higher solar irradiance may result in greater amount of sunlight reaching the solar cell(s) 316. In some examples, high humidity and high temperature may result reduction in solar cell efficiency. In some examples, poor air quality, for example, low AQI, can negatively impact the amount of sunlight reaching the solar cell(s) 316. Once the processor 210 of the management server 150 determines the amount of sunlight reaching the solar cell(s) 316, it may in turn determine or estimate the amount electricity generated by the solar cell(s) 316. The amount of electricity generated by the solar cell(s) 316 may represent the amount of electricity generated at a given time or the amount of electricity to be generated in the future. As described herein, the weather information 404 may include forecasted weather information associated with different locations. Therefore, the management server 150 may use the weather information 404 to predict how much electricity will be generated by the solar cell(s) 316 at a given location, at a given time of the year.

Additionally or optionally, the management server 150 may use the orientation information 409 to determine or estimate the amount of electricity generated by the solar cell(s) 316. As described herein, the angle of incidence for the sunlight reaching the solar cell(s) 316 can affect the amount of electricity generated by the solar cell(s) 316. For example, the closer the angle of incidence is to a tilt angle of the solar cell(s) 316, the amount of electricity generated by the solar cell(s) 316 may increase. In contrast, the farther the angle of incidence is from 90 degrees, the amount of electricity generated by the solar cell(s) 316 may decrease.

In some embodiments, the management server 150 may determine the power generation associated with the object tracking device 110 using the weather information 404, as described herein. For example, a storage unit associated with the object tracking device 110 may be located in Palm Springs, Calif. To forecast the amount of the power generated by the object tracking device 110, for example, via the solar cell(s) 316, the management server 150 may retrieve the weather information 404 including associated with Palm Springs, Calif. Additionally, the management server 150 may forecast the amount of power generated based at least in part on historical weather information. For example, the management server 150 may receive/retrieve weather information 404 related to the months between January and June to forecast the amount of power generated, for example, in Palm Springs, Calif.

In various embodiments, a storage unit associated with the object tracking device 110 may be in transit. In such situations, power generation of the object tracking device 110 may need to be determined or forecasted for anticipated locations of the object tracking device 110. The management server 150 may determine the anticipated locations from a transit route. Based at least in part on the transit route, the management server 150 can receive the weather information 404 associated with various locations along the transit route to calculate the amount of power generated by the object tracking device 110 during transit. In some embodiments, the anticipated locations may be determined from previous locations associated with the object tracking device 110 in an earlier predetermined period of time.

In various embodiments, the processor 210 of the management server 150 and/or the object tracking device 110 may, when determining the power generation of the object tracking device 110, consider that the power generation module 310 may generate and store electricity via the solar cell(s) 312 when certain conditions are satisfied. For example, the solar cell(s) 316 may require a predetermined amount of energy (for example, certain amount of voltage present at the solar cell(s) 312) prior to generating electricity. As such, generating electricity via the solar cell(s) 316 prior to the solar cell(s) 316 reaching a certain voltage level may result in the object tracking device 110 unnecessarily consuming electricity prior to generating electricity. Accordingly, when determining estimated power generation, the management server 150 and/or the object tracking device 110 may additionally determine whether the amount of sunlight reaching the solar cell(s) 312 can generate enough electricity to allow the voltage level, for example, of the solar cell(s) 312 to exceed a predetermined voltage threshold. In some embodiments, the predetermined voltage threshold for the solar cell(s) 312 may be configurable by users or organizations, for example, via the user device(s) 160.

In various embodiments, the power generation module 310 may be programmed to not generate electricity using the solar cell(s) 316 unless a voltage threshold condition, for example, voltage present at the solar cell(s) 312, is satisfied. In some embodiments, the power generation module 310 may include one or more diodes, for example, current regulating diodes, that regulate current generated by the solar cell(s) 312.

In various embodiments, the power generation module 310 may have the solar cell(s) 312 connected to/disconnected from other components of the power generation module 310 to control when to generate electricity. For example, it may not be beneficial to have the solar cell(s) 312 connected to other components of the power generation module 310, for example, the power storage device 314, during at night or otherwise when there is insufficient amount of sunlight to generate more electricity than consumed (to operate the solar cell(s) 312). As discussed herein, such connection/disconnection of the solar cell(s) 312 may be based at least in part on voltage of the solar cell(s) 312, which can be used as an indicator as to whether there is sufficient amount of sunlight reaching the solar cell(s) 312 to generate more electricity than electricity consumed. For example, if the voltage of the solar cell(s) 312 satisfy a condition, the solar cell(s) 312 may remain connected to the other components of the power generation module 310. In contrast, if the voltage of the solar cell(s) 312 does not satisfy the condition, the solar cell(s) 312 may be disconnected from the other components of the power generation module 310.

However, it is contemplated that when the solar cell(s) 312 are disconnected, the voltage of the solar cell(s) 312 may temporarily spike. Such spike can trigger the power generation module 310 to reconnect the solar cell(s) 312, thereby allowing the solar cell(s) 312 to generate electricity. In order to prevent such spike causing accidental reconnect of the solar cell(s) 312, the solar cell(s) 312 may be disconnected when its voltage level is a certain level below a threshold level.

Example Embodiments of Determining Power Consumption

In operation, the management server 150 may use the configuration information 408 to calculate the power consumption of the object tracking device 110. As described herein, the configuration information 408 may include at least one of power consumption information associated with the object tracking device 110, a frequency of data transmission between the object tracking device 110 and the computer system, an amount of power consumption per data transmission between the object tracking device 110 and the computer system, a frequency of determining the location of the object tracking device 110, or network connectivity information.

As described herein, the object tracking device 110 may intermittently, for example, at a predetermined frequency, or continuously communicate with the management server 150 to transmit information between the object tracking device 110 and the management server 150. Each of the transmission may be associated with a predetermined amount of power consumption, which can be used to determine or estimate power consumption associated with the object tracking device 110.

Additionally, as described herein, the object tracking device 110 may collect information from a storage unit associated with the object tracking device 110. Such collection of information can be associated with a known, predetermined level of power consumption. By determining the frequency of collecting information from the storage unit and the amount of power consumption associated with each collection of information, power consumption associated with collection of information associate with a storage unit associated with the object tracking device 110 can further be ascertained.

In some embodiments, the predetermined amount of power consumption per collection of information from the storage unit can depend on various factors including, but not limited to, size of the collected information, format of the collected information, network connectivity, network data transmissibility, and the like. The configuration information 408 may include information related to the amount of power consumption per collection of information from the storage unit based at least in part on, for example, size of the collected information, format of the collected information, method of data collection (for example, wired or wireless), and the like, as described herein. Such information (for example, amount of power consumption per collection of information from the storage unit) may be the same or vary at least based in part on the object tracking device(s) 110, organization associated with the object tracking device(s) 110, sensors associated with the storage unit, and the like.

Additionally, as described herein, the management server 150 may collect or generate location information associated with the location of the object tracking device 110 (e.g., via the location determination module 350). Such collection of location information can be associated with a known, predetermined level of power consumption. By determining the frequency of collecting location information associated with the location of the object tracking device 110 and the amount of power consumption associated with each collection of location information, power consumption associated with determination of the location of the object tracking device 110 can further be ascertained.

Additionally, as described herein, the orientation determination module 360 may collect or generate orientation information associated with the orientation of the object tracking device 110. Such collection of orientation information can be associated with a known, predetermined level of power consumption. By determining the frequency of collecting orientation information associated with the location of the object tracking device 110 and the amount of power consumption associated with each collection of orientation information, power consumption associated with determination of the orientation of the object tracking device 110 can further be ascertained.

In some implementations, the management server 150 may also use network connectivity information to determine power consumption of the object tracking device 110. The network connectivity information may, for example, include at least one of distance to a nearest signal or cell tower, data transmissibility, signal strength, or data availability. For example, the distance between the object tracking device 110 to the nearest signal or cell tower can positively or negatively impact the energy consumed per connection with the signal or cell tower.

Example Method of Determining Estimated Operation Time

At block 430, the management server 150 may use the power generation and the power consumption associated with the object tracking device 110 to determine the estimated operation time for the object tracking device 110.

As discussed herein, the object tracking devices 110 often are positioned on or installed on a storage unit, for example, a trailer, and do not include an external power source. Therefore, to ensure continued availability of the object tracking devices 110, it is important to estimate and forecast expected operation time for the object tracking devices 110 and, when necessary, to take adequate measures, for example, providing updated configuration for the object tracking device 110.

The power generation and the power consumption of the object tracking device(s) 110 may indicate the amount of power generated and the amount of power consumed per unit time, respectively. By comparing the power generation and the power consumption of the object tracking device(s) 110, the processor 210 of the management server 150 may determine if the object tracking device 110 is generating more power (for example, electricity) than consumed, consuming more power than generated, or consuming and generating substantially the same amount of power.

Additionally or optionally, the management server 150, in some embodiments, receives the battery information 406 as described herein, and use the battery information 406 with the power generation and the power consumption to determine the estimated operation time. As described herein, the power consumption and the power generation may be used to determine net power consumed/generated by the object tracking device 110. The net power consume/generated may be in a unit of amount of energy per second, per minute, per hour, per day, per week, and the like. By using the net power consumed by the object tracking device 110, for example, per day, and the battery information 406 indicating, for example, current charge level of the object tracking device 110, the management server 150 may determine how long it would take for the charge level of the object tracking device 110 to reach zero or a predetermined threshold charge level. The predetermined threshold charge level may indicate that the object tracking device 110 may run out of power in, for example, next day or two, next week or two, and the like.

In some embodiments, the power generation and the power consumption may represent expected amount of power (for example, electricity) generated and consumed by the object tracking device 110 in, for example, next one month, next six months, next 12 months, until the end of calendar year, and the like). In this regard, the processor 210 of the management server 150 can compare the expected total amount of power generated by the object tracking device 110 with the expected total amount of power consumed by the object tracking device 110. Such comparison may allow users to forecast whether their object tracking devices 110 may remain operational after a certain period of time.

For example, users may wish to know if the object tracking device 110 will remain operational for the next 12 months. The management server 150 may determine the estimated amount of energy generated by the object tracking device 110 for the next 12 months and also determine the estimated amount of energy consumed by the object tracking device for the next 12 months, as described herein. For example, the estimated amount of energy consumed for the next 12 months may be calculated using at least in part baseline energy consumption by the object tracking device 110, energy consumed per data/information (for example, the location information 402) transmission between the object tracking device 110 and the management server 150, frequency of data/information transmission between the object tracking device 110 and the management server 150. The energy consumed per data/information transmission and the frequency of data/information transmission (which may be indicated by the configuration of the object tracking device) may be used to calculate the total estimated energy consumption associated with data/information transmission. The total estimated energy consumption associated with data/information transmission may be combined with the baseline energy consumption to determine the total estimated power consumption of the object tracking device 110.

Example Output of the Management Server Processor

At block 440, the data associated with the power generation, the power consumption, and the estimated operation time (for example, any or all information associated with the processing and estimating, including, for example, the location information, the weather information, the configuration information, and the orientation information) may be stored or logged by the processor 210 of the management server 150, for example, in a memory/computer readable storage medium. In some implementations, the data associated with the power generation and the power consumption may be stored indefinitely. In some implementations, the data associated with the power generation and the power consumption may be stored for a period of time, for example, rolling based on an acquisition date/time or process data/time, and then deleted. In some implementations, the data associated with the power generation and the power consumption may be stored or not stored, or stored for a period of time, based on an outcome of the processing and estimating. In some implementations, storage of the data associated with the power generation and the power consumption may be based on any combination of the above.

At block 442, the management server 150 may generate an updated configuration data for the object tracking device 110 based at least in part on the estimated operation time, the power consumption, or the power generation. The updated configuration data may be provided to the object tracking device 110 via the network 130. In some embodiments, users may access the updated configuration via the user devices 160 (for example, via the network 130 or the management server 150). The updated configuration data may automatically update configuration of the object tracking device 110. In some embodiments, user may be prompted to apply the updated configuration data to the object tracking device 110, for example, via any combination of the user device 160, the management server 150, and the network 130.

In operation, the updated configuration may adjust at least one of power consumption associated with the object tracking device 110, the frequency of data transmission between the object tracking device 110 and the management server 150 (for example, via the network 130), an amount of power consumption per transmission between the object tracking device 110 and the management server 150, the frequency of determining location of the object tracking device 110 (for example, via the location determination module 350), network connectivity settings, and the like. The management server 150 may continue to determine updated power generation and updated power consumption based at least in part on the information described herein and determine updated estimate operation time as described herein.

Additionally or alternatively, the processor 210 of the management sever 150 can generate and transmit notifications to user device(s) 160 via the network 130. The notification may include, but not limited to, the updated configuration as described herein, request to apply the updated configuration, details of the updated configuration, request to reposition or reorient the object tracking device 110, request to provide an external power supply for the object tracking device 110, and the like. In some embodiments, the notification may include graphical illustrations of forecasted power generation and power consumption of the object tracking device 110.

In various implementations, various aspects of the functionality described in reference to FIG. 4 may be accomplished in substantially real-time, for example, determination of the power generation and the power consumption may be performed as the location information, weather information, orientation information, and configuration information are acquired/received. Alternatively, various aspects of the functionality described in reference to FIG. 4 may be accomplished in batches and/or in parallel.

In various implementations, the functionality described above in reference to FIG. 4 may be provided based on a configuration of the object tracking device 110. For example, the acquisition, processing, estimating, the output, and/or storage/logging functionality may be based on, and changed, according to a configuration of the object tracking device 110 and further described herein.

Further Example Methods and Functionality

FIGS. 5-6 are flowcharts illustrating example methods and functionality, according to various embodiments of the present disclosure. FIG. 5 is a flowchart illustrating an example method 500 for determining estimated operation life of the object tracking device(s) 110. The example method 500 illustrates functionalities associated primarily with the management server 150. FIG. 6 is a flowchart illustrating an example method for adjusting configuration of the object tracking device(s) 110 based on the estimated operation life of the object tracking device(s) 110. Both the example methods of FIGS. 5 and 6 illustrate functionalities associated primarily with the management server 150.

Referring to FIG. 5 , at block 502 the processor 210 receives/acquires/collects location information, as generally described herein in reference to block 402 of FIG. 4 . As described herein, the processor 210 may receive/acquire/collect the location information from the object tracking device 110. The location information may be used to determine the location of the object tracking device 110.

Additionally or optionally, at block 504 the processor 210 receives weather information, as generally described herein in reference to block 404 of FIG. 4 . The weather information, for example, may be used to determine the expected/forecasted/present amount of sunlight reaching the solar cells 312(s) of the power generation module 310. The processor 210 may receive the weather information from the weather database 258 of the management server 150 or the data sources 140. The weather information, as described herein, may be accessed/received/retrieved based at least in part on the location information.

Additionally or optionally, at block 506 the processor 210 receives orientation information, as generally described herein in reference to block 409 of FIG. 4 . The orientation information, for example, may be used to determine the orientation of the object tracking device 110 and/or the orientation of the solar cell(s) 312. In operation, the object tracking device 110 may not be orientated or positioned for the solar cell(s) 312 to receive the optimal/maximum amount of sunlight.

At block 508 the processor 210 of the management server 150 determines power generation of the object tracking device 110, as generally described above in reference to block 420 of FIG. 4 . At block 510 the management server 150 may receive/acquire/collect configuration information associated with the object tracking device 110 as generally described above in reference to block 408 of FIG. 4 . At block 512, the processor 210 of the management server 150 determines power consumption of the object tracking device 110, as generally described above in reference to block 420 of FIG. 4 .

Additionally or optionally, at block 514 the processor 210 of the management server 150 receives battery information, as generally described herein in reference to block 406 of FIG. 4 . As described herein, the battery information can include at least one of, but not limited to, voltage, charge level, charge rate, discharge rate, storage capacity, depth of discharge, battery efficiency, discharge current, number of charging cycles, and the like. The battery information may be used to determine status of the power storage device(s) 314 of the power generation module 310. As described herein, since the power storage device(s) 314 may store power for the object tracking device 110, battery information providing the status of the power storage device(s) 314 may advantageously allow the management server 150 to accurately forecast estimated operation time for the object tracking device 110.

At block 516, the processor 210 of the management server 150 may determine estimated operation time, as generally described above in reference to block 430 of FIG. 4 . For example, the management server 150 may use the charge level (for example, of the power storage device(s) 314), the power generation, and the power consumption to determine the estimated operation time for the object tracking device 110.

In operation, an object associated with the object tracking device 110 may be in transit. Under such circumstances, the management server 150 may optionally or additional receive location information representative of respective corresponding locations of the object tracking device 110. The location information may be provided from transit information associated with the object in transit. The transit information may be associated with the object tracking device 110 or the organization associated with either the object or the object tracking device 110. The management server 150 may receive the transit information from the data sources 140.

In some embodiments, the transmit information may not be available to the management server 150. In such circumstances, the management server 150 may record locations of the object tracking device 110. Recording of the locations of the object tracking device 110 may be done periodically or non-periodically. For example, the management server 150 may record the locations of the object tracking device 110 at one-minute intervals, 5-minute intervals, 10-minute intervals, 20-minute intervals, 30-minute intervals, one-hour intervals, one-day intervals, and the like. Additionally or alternatively, the management server 150 may record the locations of the object tracking device 110 based on the distance travelled by the object tracking device 110. For example, the management server 150 may record the locations of the object tracking device 110 for every mile travelled, every five miles travelled, every 10 miles travelled, every 20 miles travelled, every 50 miles travelled, and the like. In some embodiments, the management server 150 may record the locations of the object tracking device 110 only it determines that the object tracking device 110 is in transit.

The management server 150, based at least in part on the recorded locations of the object tracking device 110, may determine expected locations of the object tracking device 110. The expected locations of the object tracking device 110 may be used to determine expected power generation of the object tracking device 110 associated with those expected locations. As described herein, based at least on the expected locations, weather information, for example, forecasted weather information associated with the expected locations, can be retrieved and be used to determine the expected power generation.

Referring to FIG. 6 , the processor 210 of the management server 150 may, after determining the estimated operation time at block 516, retrieve an operation time threshold at block 602. The operation time threshold may represent a desired period of time of operation for the object track device(s) 110. For example, users or organizations may provide the operation time threshold. The operation time threshold may be stored in/accessed or retrieved from the configurations database 262, the organizations database 264, or configuration data 332. In some embodiments, the operation time threshold may be provide by and configurable by users and/or organizations associated with the object tracking device(s) 110. The operation time threshold may be configurable/adjustable using the user device(s) 160 via the network 130. In operation, the operation time threshold may be, for example, a month, three months, six months, 12 months, perpetuity, and the like.

At block 604, the management server 150 compares the estimated operation time with the operation time threshold. If the estimated operation time satisfies the threshold, the management server 150, at block 610, maintains the configuration of the object tracking device 110. Additionally, the management server 150 does not generate an updated configuration data for the object tracking device 110. In contrast, if the estimated operation time does not satisfy the condition, the management server 150, at block 606, generates an updated configuration data for the object tracking device 110. The updated configuration data, as described herein, may be used to update configuration of the object tracking device 110.

Additionally or optionally, the processor 210 of the management server 150 may, at block 608, generate notification associated with the estimated operation time of the object tracking device 110, current configuration of the object tracking device 110 (that is, configuration prior to updated configuration), or the updated configuration of the object tracking device 110. The notification may include various types of updates and information as described herein. The notification may be transmitted to the user devices 160 via the network 130 or any combination of external and internal wired or wireless communication servers.

Application of Estimated Operation Time

FIG. 7 illustrates an example chart 700 showing example graphs of solar irradiance and battery charge levels of an example object tracking device 110. A graph 702 represents an example solar irradiance during an example calendar year. A graph 704 is an example plot representing battery charge levels of an object tracking device 110 with a first configuration. A graph 706 is an example plot representing battery charge levels of an object tracking device 110 with a second configuration. The battery charge level may be a charge level of the power storage device(s) 314.

As described herein, it may be difficult to accurately predict how long object tracking devices 110 can remain operational. In some embodiments, battery status information (for example, voltage, charge rate, discharge rate, storage capacity, depth of discharge, battery efficiency, discharge current, number of charging cycles, and the like associated with the power storage device 314) alone may not be sufficient to accurately predict estimated operation time of the object tracking devices 110. Moreover, different object tracking devices 110 may have different configurations that may lead to different rate of power consumption. Furthermore, there are many factors that affect the amount of electricity generated by the solar cell(s) 312 of the object tracking devices 110.

Accordingly, users of the object tracking devices 110 may be interested to see if the object tracking devices 110 may remain operational for a period of time (for example, a month, six months, a 12 months or a calendar year, or forever). For example, users of the object tracking devices 110 may be interested to see if the object tracking device 110 can remain operational through the months that have relatively shorter days (for example, November through February) because they may be concerned that their object tracking devices 110 do not have sufficient charge prior to those months. In another example, users of the object tracking devices 110 may be interested to see if the object tracking device 110 can remain operation for the next 12 months and if not, adjust orientation of the object tracking devices 110. By comparing the power generation and the power consumption of the object tracking device 110, the management server 150 can provide useful information indicating potential availability of the object tracking devices 110.

As illustrated by the graph 702, the amount of solar irradiance can vary between different seasons. For example, the amount of solar irradiance can decrease during winter months and increase during summer months. Therefore, solar cells can generate more electricity during the summer months than during the winter months. The solar irradiance levels illustrated by the graph 702 may represent moving averages of the solar irradiance over a predetermined period of time (for example, 7 day moving average, 14 day moving average, 1 month moving average, 2 months moving average, and the like). The overall trend of solar irradiance may vary year to year and historical weather information may be used to forecast solar irradiance.

As illustrated by the graphs 704 and 706, the battery charge level of the object tracking device(s) 110 may change between different seasons. In some embodiments, the changes in the battery charge level of the object tracking device(s) 110 may reflect the change in the amount of solar irradiance in different seasons. For example, the charge level of an object tracking device 110 may decrease during the winter months because the solar irradiance may be lower during the winter months. Likewise, the charge level of an object tracking device 110 may increase during the summer months because the solar irradiance may be higher during the summer months. The battery charge levels illustrated by the graphs 704 and 706 may represent moving averages of the battery charge levels over a predetermined period of time (for example, 7 day moving average, 14 day moving average, 1 month moving average, 2 months moving average, and the like).

In operation, the battery charge level (for example, illustrated by the graphs 704 and 706 in FIG. 7 ) of the object tracking device 110 may decrease when the solar irradiance level is below a threshold value (for example, SI_(threshold)) and may increase when the solar irradiance level is above the threshold value. The threshold value, for example, SI_(threshold), may represent the minimum average amount of solar irradiance needed to generate more energy, for example, via the power generation module 310, than energy consumed, for example, by the object tracking device 110.

In various embodiments, it is possible that decrease/increase in solar irradiance may not exactly overlap with decrease/increase in charge level of an object tracking device 110, as shown in FIG. 7 . In some embodiments, decrease/increase in charge level of an object tracking device 110 may closely follow decrease/increase in solar irradiance.

The different profiles of the graph 704 and the graph 706 may be due to different configurations of the object tracking device(s) 110. As discussed above, the graph 704 represents battery charge levels of an object tracking device 110 with a first configuration, while the graph 706 represents battery charge levels of an object tracking device 110 with a second configuration. For example, the first configuration may represent a configuration with a first power consumption rate for the object tracking device 110. As illustrated by the graph 704, the battery charge level of the object tracking device 110 with the first power consumption rate decreases during months when solar irradiance is below the threshold (for example, SI_(threshold)) and recovers during months when solar irradiance is above the threshold. In contrast, the second configuration may represent a configuration with a second power consumption rate. As illustrated by the graph 706, the battery charge level of the object tracking device 110 with the second power consumption rate decreases rapidly during months when solar irradiance is below the threshold (for example, SI_(threshold)) and recovers very little (or, in some embodiments, none at all) during months when solar irradiance is above the threshold. In the example illustrated in FIG. 7 , the first power consumption rate of the first configuration may be less than the second power consumption rate of the second configuration.

In various embodiments, the management server 150 may be able to determine the rate at which the battery charge level (for example, charge level of the power storage device(s) 314) of the object tracking device 110 changes. If the rate of change of the battery charge level is above a threshold rate (for example, decreasing too quickly), the management server 150 may automatically (or, in some embodiments, manually with user input via the user device(s) 160) adjust configuration of the object tracking device 110.

In some embodiments, the management server 150 may use the power consumption of the object tracking device 110 to determine whether to change configuration of the object tracking device 110. The power consumption of the object tracking device 110 may be compared to a threshold and the comparison between the power consumption and the threshold may be used to determine whether to change configuration of the object tracking device 110. For example, the management server 150 may determine that the power consumption level is above a predetermined threshold (for example, the object tracking device 110 is spending too much power), and may determine to change configuration of the object tracking device 110, for example, to reduce the power consumption.

In some embodiments, the management server 150 may periodically update battery charge level, forecasted power generation, and forecasted power consumption of the object tracking device 110 to determine whether to change the configuration of the object tracking device 110. The management server 150 may perform such updates and determinations periodically, non-periodically, intermittently, non-intermittently, regularly, irregularly, or whenever the management server 150 receives updated information from the object tracking device 110 (for example, the location information and the configuration information as described here).

List of Example Numbered Embodiments

The following is a list of example numbered embodiments. The features recited in the below list of example embodiments can be combined with additional features disclosed herein. Furthermore, additional inventive combinations of features are disclosed herein, which are not specifically recited in the below list of example embodiments and which do not include the same features as the specific embodiments listed below. For sake of brevity, the below list of example embodiments does not identify every inventive aspect of this disclosure. The below list of example embodiments are not intended to identify key features or essential features of any subject matter described herein.

1. A computer system for interacting with an object tracking device, the computer system comprising:

-   -   a computer readable storage medium having program instructions         embodied therewith; and     -   one or more processors configured to execute the program         instructions to cause the computer system to:         -   receive, from an object tracking device, location             information associated with the object tracking device;         -   determine, based at least in part on the location             information, a power generation of the object tracking             device;         -   receive, from the object tracking device, configuration             information associated with the object tracking device;         -   determine, based at least in part on the configuration             information, a power consumption of the object tracking             device;         -   determine an estimated operation time based at least in part             on the power generation and the power consumption; and         -   in response to determining that the estimated operation time             does not satisfy a threshold, determine and transmit, to the             object tracking device, updated configuration information             for the object tracking device.

2. The computer system of embodiment 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   receive, from a remote data source, weather information         associated with the location information, wherein the         determination of the power generation of the object tracking         device is further based at least in part on the weather         information.

3. The computer system of embodiment 2, wherein the weather information comprises at least one of: irradiance information, temperature information, humidity information, precipitation information, or air quality index.

4. The computer system of embodiment 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   receive, from the object tracking device, orientation         information associated with the object tracking device, wherein         the determination of the power generation of the object tracking         device is further based at least in part on the orientation         information.

5. The computer system of embodiment 4, wherein the orientation information is determined based at least in part on data acquired by one or more sensors of the object tracking device.

6. The computer system of any of embodiments 1 to 5, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   receive, from a remote data source, weather information         associated with the location information; and     -   receive, from the object tracking device, orientation         information associated with the object tracking device, wherein         the determination of the power generation of the object tracking         device is further based at least in part on the weather         information and the orientation information.

7. The computer system of any of embodiments 1 to 6, wherein the computer system further comprises the object tracking device, wherein the object tracking device comprises:

-   -   a solar power generation device comprising a solar cell;     -   a power storage device;     -   a location determination device configured to generate the         location information associated with the object tracking device;     -   a configuration data storage configured to store the         configuration information associated with the object tracking         device; and     -   a wireless communication interface configured to establish         wireless communications between the object tracking device and         the one or more processors.

8. The computer system of embodiment 7, wherein the object tracking device is configured to:

-   -   determine the location information associated with the object         tracking device via the location determination device;     -   transmit the location information to the computer system;     -   access the configuration information associated with the object         tracking device; and     -   transmit the configuration information to the computer system.

9. The computer system of any of embodiments 1 to 8, wherein the configuration information comprises at least one of: (1) power consumption information associated with the object tracking device, (2) a frequency of data transmission between the object tracking device and the computer system, (3) an amount of power consumption per data transmission between the object tracking device and the computer system, or (4) network connectivity information.

10. The computer system of any of embodiments 1 to 9, wherein the estimated operation time indicates whether the object tracking device can remain operational for a configurable period of time.

11. The computer system of embodiment 10, wherein the configurable period of time is one year.

12. The computer system of any of embodiments 1 to 11, wherein the updated configuration information comprises an adjustment of at least one of: a frequency of data transmission between the object tracking device and the computer system, an amount of power consumption per data transmission between the object tracking device and the computer system, a frequency of generating the location information associated with the object tracking device, or network connectivity information associated with the object tracking device.

13. The computer system of any of embodiments 1 to 12, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   receive object information from the object tracking system,         wherein the object information is associated with a storage unit         associated with the object tracking system, and wherein the         object information comprises at least one or more of: (1)         temperature information, (2) access information, or (3) visual         information.

14. The computer system of embodiment 13, wherein the object information is collected using a plurality of sensors of the storage unit.

15. The computer system of embodiment 13, wherein the object information is collected at a predetermined time interval, and wherein the object information is stored within a computer-readable storage medium of the object tracking device.

16. The computer system of any of embodiments 1 to 15, wherein the computer system comprises a wireless communication module configured to establish wireless communications with the object tracking device, and wherein the location information, the configuration information, and the updated configuration information are transmitted between the computer system and the object tracking device via the wireless communications.

17. The computer system of any of embodiments 1 to 16, wherein the location information comprises a plurality of position data representative of a corresponding plurality of locations of the object tracking device in a predetermined period of time, and wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   determine, based at least in part on the plurality of position         data, a corresponding plurality of power generation of the         object tracking device;     -   determine an updated estimated operation time based at least in         part on the corresponding plurality of power generation and the         power consumption.

18. The computer system of any of embodiments 1 to 17, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   transmit information associated with the updated configuration         information to one or more user devices associated with the         object tracking device.

19. The computer system of any of embodiments 1 to 18, wherein, for determination of the estimated operation time, the one or more processors are configured to execute the program instructions to further cause the computer system to:

-   -   determine a charge level of the object tracking device;     -   determine a difference between the power consumption of the         object tracking device and the power generation of the object         tracking device over a period of time; and     -   based at least in (1) the charge level of the object tracking         device and (2) the difference between the power consumption of         the object tracking device and the power generation of the         object tracking device over the period of time, determine a time         it would take for the charge level of the object tracking device         to satisfy a predetermined charge level threshold.

20. A computer system for interacting with an object tracking device, the computer system comprising:

-   -   a computer readable storage medium having program instructions         embodied therewith; and     -   one or more processors configured to execute the program         instructions to cause the computer system to:         -   receive, from an object tracking device, location             information associated with the object tracking device;         -   receive, from the object tracking device, orientation             information associated with the object tracking device;         -   determine, based at least in part on the location             information and the orientation information, a power             generation of the object tracking device;         -   receive, from the object tracking device, configuration             information associated with the object tracking device;         -   determine, based at least in part on the configuration             information, a power consumption of the object tracking             device;         -   determine an estimated operation time based at least in part             on the power generation and the power consumption; and         -   in response to determining that the estimated operation time             does not satisfy a threshold, generate and transmit, to at             least one user device associated with the object tracking             device, a notification.

21. The computer system of embodiment 20, wherein the notification comprises at least one of: an indication requesting reorientation of the object tracking device, an indication requesting an external power supply for the object tracking device, an indication of estimated operation time, an indication requesting a change of configuration for the object tracking device, an indication of a suggested change of configuration for the object tracking device, or an indication notifying a change of configuration for the object tracking device.

Additional Implementation Details and Embodiments

Various embodiments of the present disclosure may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or mediums) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.

For example, the functionality described herein may be performed as software instructions are executed by, and/or in response to software instructions being executed by, one or more hardware processors and/or any other suitable computing devices. The software instructions and/or other executable code may be read from a computer readable storage medium (or mediums).

The computer readable storage medium can be a tangible device that can retain and store data and/or instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device (including any volatile and/or non-volatile electronic storage devices), a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a solid state drive, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (for example, light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions (as also referred to herein as, for example, “code,” “instructions,” “module,” “application,” “software application,” and/or the like) for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. Computer readable program instructions may be callable from other instructions or from itself, and/or may be invoked in response to detected events or interrupts. Computer readable program instructions configured for execution on computing devices may be provided on a computer readable storage medium, and/or as a digital download (and may be originally stored in a compressed or installable format that requires installation, decompression or decryption prior to execution) that may then be stored on a computer readable storage medium. Such computer readable program instructions may be stored, partially or fully, on a memory device (for example, a computer readable storage medium) of the executing computing device, for execution by the computing device. The computer readable program instructions may execute entirely on a user's computer (for example, the executing computing device), partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart(s) and/or block diagram(s) block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer may load the instructions and/or modules into its dynamic memory and send the instructions over a telephone, cable, or optical line using a modem. A modem local to a server computing system may receive the data on the telephone/cable/optical line and use a converter device including the appropriate circuitry to place the data on a bus. The bus may carry the data to a memory, from which a processor may retrieve and execute the instructions. The instructions received by the memory may optionally be stored on a storage device (for example, a solid state drive) either before or after execution by the computer processor.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. In addition, certain blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate.

It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions. For example, any of the processes, methods, algorithms, elements, blocks, applications, or other functionality (or portions of functionality) described in the preceding sections may be embodied in, and/or fully or partially automated via, electronic hardware such application-specific processors (for example, application-specific integrated circuits (ASICs)), programmable processors (for example, field programmable gate arrays (FPGAs)), application-specific circuitry, and/or the like (any of which may also combine custom hard-wired logic, logic circuits, ASICs, FPGAs, etc. with custom programming/execution of software instructions to accomplish the techniques).

Any of the above-mentioned processors, and/or devices incorporating any of the above-mentioned processors, may be referred to herein as, for example, “computers,” “computer devices,” “computing devices,” “hardware computing devices,” “hardware processors,” “processing units,” and/or the like. Computing devices of the above-embodiments may generally (but not necessarily) be controlled and/or coordinated by operating system software, such as Mac OS, iOS, Android, Chrome OS, Windows OS (for example, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows Server, etc.), Windows CE, Unix, Linux, SunOS, Solaris, Blackberry OS, VxWorks, or other suitable operating systems. In other embodiments, the computing devices may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I/O services, and provide a user interface functionality, such as a graphical user interface (“GUI”), among other things.

As described above, in various embodiments certain functionality may be accessible by a user through a web-based viewer (such as a web browser), or other suitable software program. In such implementations, the user interface may be generated by a server computing system and transmitted to a web browser of the user (for example, running on the user's computing system). Alternatively, data (for example, user interface data) necessary for generating the user interface may be provided by the server computing system to the browser, where the user interface may be generated (for example, the user interface data may be executed by a browser accessing a web service and may be configured to render the user interfaces based on the user interface data). The user may then interact with the user interface through the web-browser. User interfaces of certain implementations may be accessible through one or more dedicated software applications. In certain embodiments, one or more of the computing devices and/or systems of the disclosure may include mobile computing devices, and user interfaces may be accessible through such mobile computing devices (for example, smartphones and/or tablets).

Many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure. The foregoing description details certain embodiments. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the systems and methods can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the systems and methods should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the systems and methods with which that terminology is associated.

Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments may not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.

The term “substantially” when used in conjunction with the term “real-time” forms a phrase that will be readily understood by a person of ordinary skill in the art. For example, it is readily understood that such language will include speeds in which no or little delay or waiting is discernible, or where such delay is sufficiently short so as not to be disruptive, irritating, or otherwise vexing to a user.

Conjunctive language such as the phrase “at least one of X, Y, and Z,” or “at least one of X, Y, or Z,” unless specifically stated otherwise, is to be understood with the context as used in general to convey that an item, term, etc. may be either X, Y, or Z, or a combination thereof. For example, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list. Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y, and at least one of Z to each be present.

The term “a” as used herein should be given an inclusive rather than exclusive interpretation. For example, unless specifically noted, the term “a” should not be understood to mean “exactly one” or “one and only one”; instead, the term “a” means “one or more” or “at least one,” whether used in the claims or elsewhere in the specification and regardless of uses of quantifiers such as “at least one,” “one or more,” or “a plurality” elsewhere in the claims or specification.

The term “comprising” as used herein should be given an inclusive rather than exclusive interpretation. For example, a general purpose computer comprising one or more processors should not be interpreted as excluding other computer components, and may possibly include such components as memory, input/output devices, and/or network interfaces, among others.

While the above detailed description has shown, described, and pointed out novel features as applied to various embodiments, it may be understood that various omissions, substitutions, and changes in the form and details of the devices or processes illustrated may be made without departing from the spirit of the disclosure. As may be recognized, certain embodiments of the inventions described herein may be embodied within a form that does not provide all of the features and benefits set forth herein, as some features may be used or practiced separately from others. The scope of certain inventions disclosed herein is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. 

What is claimed is:
 1. A computer system for interacting with an object tracking device, the computer system comprising: a computer readable storage medium storing program instructions; and one or more processors configured to execute the program instructions to cause the computer system to: receive, from the object tracking device, location information associated with the object tracking device; determine, based at least in part on the location information, a power generation of the object tracking device; receive, from the object tracking device, configuration information associated with the object tracking device; determine, based at least in part on the configuration information, a power consumption of the object tracking device; determine an estimated operation time based at least in part on the power generation and the power consumption; and in response to determining that the estimated operation time does not satisfy a threshold, determine and transmit, to the object tracking device, updated configuration information for the object tracking device.
 2. The computer system of claim 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: receive, from a remote data source, weather information associated with the location information, wherein the determination of the power generation of the object tracking device is further based at least in part on the weather information.
 3. The computer system of claim 2, wherein the weather information comprises at least one of: irradiance information, temperature information, humidity information, precipitation information, or air quality index.
 4. The computer system of claim 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: receive, from the object tracking device, orientation information associated with the object tracking device, wherein the determination of the power generation of the object tracking device is further based at least in part on the orientation information.
 5. The computer system of claim 4, wherein the orientation information is determined based at least in part on data acquired by one or more sensors of the object tracking device.
 6. The computer system of claim 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: receive, from a remote data source, weather information associated with the location information; and receive, from the object tracking device, orientation information associated with the object tracking device, wherein the determination of the power generation of the object tracking device is further based at least in part on the weather information and the orientation information.
 7. The computer system of claim 1, wherein the computer system further comprises the object tracking device, wherein the object tracking device comprises: a solar power generation device comprising a solar cell; a power storage device; a location determination device configured to generate the location information associated with the object tracking device; a configuration data storage configured to store the configuration information associated with the object tracking device; and a wireless communication interface configured to establish wireless communications between the object tracking device and the one or more processors.
 8. The computer system of claim 7, wherein the object tracking device is configured to: determine the location information associated with the object tracking device via the location determination device; transmit the location information to the computer system; access the configuration information associated with the object tracking device; and transmit the configuration information to the computer system.
 9. The computer system of claim 1, wherein the configuration information comprises at least one of: (1) power consumption information associated with the object tracking device, (2) a frequency of data transmission between the object tracking device and the computer system, (3) an amount of power consumption per data transmission between the object tracking device and the computer system, or (4) network connectivity information.
 10. The computer system of claim 1, wherein the estimated operation time indicates whether the object tracking device can remain operational for a configurable period of time.
 11. The computer system of claim 10, wherein the configurable period of time is one year.
 12. The computer system of claim 1, wherein the updated configuration information comprises an adjustment of at least one of: a frequency of data transmission between the object tracking device and the computer system, an amount of power consumption per data transmission between the object tracking device and the computer system, a frequency of generating the location information associated with the object tracking device, or network connectivity information associated with the object tracking device.
 13. The computer system of claim 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: receive object information from the object tracking system, wherein the object information is associated with a storage unit associated with the object tracking system, and wherein the object information comprises at least one or more of: (1) temperature information, (2) access information, or (3) visual information.
 14. The computer system of claim 13, wherein the object information is collected at a predetermined time interval, and wherein the object information is stored within a computer-readable storage medium of the object tracking device.
 15. The computer system of claim 1, wherein the computer system comprises a wireless communication module configured to establish wireless communications with the object tracking device, and wherein the location information, the configuration information, and the updated configuration information are transmitted between the computer system and the object tracking device via the wireless communications.
 16. The computer system of claim 1, wherein the location information comprises a plurality of position data representative of a corresponding plurality of locations of the object tracking device in a predetermined period of time, and wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: determine, based at least in part on the plurality of position data, a corresponding plurality of power generation of the object tracking device; and determine an updated estimated operation time based at least in part on the corresponding plurality of power generation and the power consumption.
 17. The computer system of claim 1, wherein the one or more processors are configured to execute the program instructions to further cause the computer system to: transmit information associated with the updated configuration information to one or more user devices associated with the object tracking device.
 18. The computer system of claim 1, wherein, for determination of the estimated operation time, the one or more processors are configured to execute the program instructions to further cause the computer system to: determine a charge level of the object tracking device; determine a difference between the power consumption of the object tracking device and the power generation of the object tracking device over a period of time; and based at least in (1) the charge level of the object tracking device and (2) the difference between the power consumption of the object tracking device and the power generation of the object tracking device over the period of time, determine a time it would take for the charge level of the object tracking device to satisfy a predetermined charge level threshold.
 19. A computer system for interacting with an object tracking device, the computer system comprising: a computer readable storage medium storing program instructions; and one or more processors configured to execute the program instructions to cause the computer system to: receive, from the object tracking device, location information associated with the object tracking device; receive, from the object tracking device, orientation information associated with the object tracking device; determine, based at least in part on the location information and the orientation information, a power generation of the object tracking device; receive, from the object tracking device, configuration information associated with the object tracking device; determine, based at least in part on the configuration information, a power consumption of the object tracking device; determine an estimated operation time based at least in part on the power generation and the power consumption; and in response to determining that the estimated operation time does not satisfy a threshold, generate and transmit, to at least one user device associated with the object tracking device, a notification.
 20. The computer system of claim 19, wherein the notification comprises at least one of: an indication requesting reorientation of the object tracking device, an indication requesting an external power supply for the object tracking device, an indication of estimated operation time, an indication requesting a change of configuration for the object tracking device, an indication of a suggested change of configuration for the object tracking device, or an indication notifying a change of configuration for the object tracking device. 